﻿#region test_pollo
//class A
//{
//    int pollo;

//    int push_pollo()
//    {
//        Library.println("ciao " + Library.itos(this.pollo) + " pollo!!!");
//        pollo = pollo + 1;
//        return pollo;
//    }

//    void main(string[] Args)
//    {
//        int g = 7;

//        //Library.println("pollo!!!");
//        pollo = 0;

//        g = 15;

//        Library.println("ciao " + "pulaster");

//        push_pollo();

//        //Library.printi(g);

//        while (7 >= pollo)
//        {
//            Library.printi(push_pollo());
//            Library.println(" pulaster!!");
//        }

//        Library.printi(pollo);
//        Library.println(" pollo!!!");
//        Library.printi(g);
//        Library.printb(pollo < g);
//    }

//}

#endregion

#region object

//class A 
//{
//    //Library library;
//    int a;
//    //void plutone(string i){}
//    void m() 
//    { 
//        int l;
//        Library.itos(a);
//        Library.println ("lol");
//        Library.println("A fields: " + Library.itos(a));
//    }
//}
      
//class B extends A 
//{
//    boolean b;
//    void m() 
//    { 
//        Library.println ("lol");
//        Library.print("B fields: ");
//        Library.printi(a);
//        Library.print(", ");
//        Library.printb(b);
//        Library.println("");
//    }
//}

//class Test extends B {
//    void plutone(string i){}
//}
///*
//class Library extends Test
//{
//    boolean b;
//    void print(string i){}
//    void printi(int i){}
//    void printb(boolean i){}
//    void println(string i){}
//    string itos(int i){ return ""; }
//    int stoi(string i, int j){return 9;}


//}
//*/
//class C 
//{
//    void main(string[] args) 
//    {
//        A oa = new A();
//        B ob = new B();

//        if (args.length != 0) 
//            oa = ob;

//        //Library.println ("lol");
      
//        oa.a = 412;
//        //Library.println ("lol");
//        ob.a = 413;
//        //Library.println ("lol");
//        ob.b = true;
//        //Library.println ("lol");
      
//        oa.m();
//    }
//}

#endregion

#region Fibonacci

//class Fibonacci
//{

//    void main(string[] args)
//    {
//        string s = args[0];
//        int n, r;

//        n = Library.stoi(s, -1);
//        r = fib(n);

//        Library.printi(r);
//        Library.println("");
//    }

//    int fib(int n)
//    {
//        if (n < 2) return n;
//        return fib(n - 1) + fib(n - 2);
//    }
//}

#endregion

#region VerboseFibonacci

//class VerboseFibonacci
//{

//    void main(string[] args)
//    {
//        string s = args[0];
//        int n, r;

//        n = Library.stoi(s, -1);
//        r = fib(n);

//        Library.printi(r);
//        Library.println("");
//    }

//    int fib(int n)
//    {
//        int act;
//        if (n < 2)
//        {
//            Library.printi(n);
//            Library.print(", ");
//            return n;
//        }
//        act = fib(n - 1) + fib(n - 2);
//        Library.printi(act);
//        Library.print(", ");
//        return act;
//    }
//}

#endregion

#region Array

//class Array
//{
//    int method()
//    {
//        int a;
//        {
//            return 0;
//        }

//    }

//    void main(string[] args)
//    {
//        int[] ary = new int[Library.random(100)];
//        int c = 0;
//        while (c < ary.length)
//        {
//            ary[c] = Library.random(100);
//            c = c + 1;
//        }

//        c = Library.random(10);

//        Library.println("partendo da " + Library.itos(c) + " di " + Library.itos(ary.length));
        
//        while (c < ary.length)
//        {
//            Library.println("index: " + Library.itos(c) + " val: " + Library.itos(ary[c]));
//            //string out = Library.itos(ary[method()]);
//            //Library.println("ciao " + out);
//            c = c + 1;
//        }

//    }

//}

#endregion

#region List

//class Pair
//{
//    ListNode min;
//    ListNode max;
//}

//class ListNode
//{
//    int value;
//    ListNode next;

//    ListNode addFirst(int val)
//    {
//        ListNode res = new ListNode();
//        res.value = val;
//        res.next = this;
//        return res;
//    }

//    void addLast(int val)
//    {
//        ListNode tmp = new ListNode(), ite = this;
//        tmp.value = val;
//        while (ite != null)
//        {
//            ite = ite.next;
//        }
//        ite.next = tmp;
//    }

//    int Length()
//    {
//        if (next == null)
//            return 1;
//        return next.Length() + 1;
//    }

//    int[] toArray()
//    {
//        int l = this.Length();
//        int[] res = new int[l];
//        ListNode ite = this;
//        int elem = 0;
//        while (ite != null)
//        {
//            res[elem] = ite.value;
//            ite = ite.next;
//            elem = elem + 1;
//        }
//        return res;
//    }

//    void Print()
//    {
//        if (this.next == null)
//            Library.println(Library.itos(this.value));
//        else
//        {
//            Library.print(Library.itos(this.value) + "; ");
//            this.next.Print();
//        }
//    }

//    ListNode GetLast()
//    {
//        ListNode ite = this;
//        while (ite.next != null)
//        {
//            ite = ite.next;
//        }
//        return ite;
//    }

//    ListNode Append(ListNode other)
//    {
//        //Library.println("append " + Library.itos(this.Length()) + "; " + Library.itos(other.Length()));
//        if (other == null)
//            return this;
//        if (this == null)
//            return other;
//        this.GetLast().next = other;
//        return this;
//    }

//    Pair FilterMin(int i)
//    {
//        ListNode ite = this, less = null, max = null;
//        Pair pair = new Pair();
//        //Library.println("splitting " + Library.itos(this.Length()) + "; " + Library.itos(i));
//        while (ite != null)
//        {
//            ListNode tmp = ite;
//            if (ite.value < i)
//            {

//                if (less == null)
//                {
//                    less = ite;
//                }
//                else
//                {
//                    less.Append(ite);
//                }
//            }
//            else
//            {
//                if (max == null)
//                {
//                    max = ite;
//                }
//                else
//                {
//                    max.Append(ite);
//                }
//            }
//            ite = ite.next;
//            tmp.next = null;
//        }
//        pair.min = less;
//        pair.max = max;
//        return pair;
//    }

//    ListNode QSort()
//    {

//        ListNode tmp, min, max;
//        Pair pair;
//        if (this.Length() < 2)
//        {
//            //Library.println("skipped" + Library.itos(this.Length()));
//            return this;
//        }
//        //Library.print("a: ");
//        //this.Print();
//        tmp = this.next;
//        //Library.println("tmp: ");
//        //tmp.Print();
//        this.next = null;
//        //Library.println("1-" + Library.itos(this.Length()));
//        pair = tmp.FilterMin(this.value);
//        //if (pair.min != null)
//        //{
//        //    Library.println("min: ");
//        //    pair.min.Print();
//        //}
//        //if (pair.max != null)
//        //    Library.println("max" + Library.itos(pair.max.Length()));
//        if (pair.min != null)
//        {
//            min = pair.min.QSort();
//            min = min.Append(this);
//            //Library.println ("a" + Library.itos(min.Length()));
//        }
//        else
//        {
//            //Library.println("this " + Library.itos(this.Length()));
//            min = this;
//        }
//        if (pair.max != null)
//        {
//            //Library.print("b" + Library.itos(pair.max.Length()));
//            max = pair.max.QSort();
//        }
//        //Library.println("c");
//        return min.Append(max);
//    }
//}

//class Test
//{
//    void main(string[] Args)
//    {
//        int c = 0;
//        int[] array;
//        ListNode node = new ListNode();
//        node.next = null;
//        node.value = c;
//        while (c < 20)
//        {
//            node = node.addFirst(Library.random(50));
//            c = c + 1;
//        }
//        Library.println("lista");
//        node.Print();

//        node = node.QSort();

//        array = node.toArray();
//        Library.println("array");
//        Library.printi(array.length);
//        c = 0;
//        while (c < array.length)
//        {
//            Library.println("hi: " + Library.itos(array[c]));
//            c = c + 1;
//        }
//    }
//}

#endregion

#region testOP

//class Z
//{
//    void main()
//    {
//        int a = 5;
//        int b = 2;
//        int c = 5 % 2;
//        Library.println(Library.itos(c));

//        c = 5 / 2;
//        Library.println(Library.itos(c));

//        c = 5 + 2;
//        Library.println(Library.itos(c));

//        c = 5 * 2;
//        Library.println(Library.itos(c));

//    }
//}

#endregion

#region testBreakContinue

//class main
//{
//    void main()
//    {
//        int c = 0;
//        while (c < 100)
//        {
//            c = c + 1;
//            if ((c % 2) != 0)
//            {
//                continue;
//            }
//            Library.println(Library.itos(c));
//            if (c > 24)
//            {
//                Library.println("break!!");
//                break;
//            }
//        }
//        return;
//        Library.println("leave");
//    }
//}

#endregion

#region testAndOrNotShortCircuit

class main
{
    void main()
    {
        int[] al;
        int zz = 10;
        boolean a = false;
        boolean b = true;
        boolean c = !(zz == 10) && b;
        Library.printb(c);
        Library.println("");

        {
            int k = 0;
            int l = 1;
            if ((k == l) || (k == k))
                Library.println("no");
        }

    }
}

#endregion
